#include "Var.h"


Var::Var(vm *_env, Token *_tok)
    :env(_env), Assignable(_tok)
{
}


Var::~Var(void)
{
}

int Var::DoEvalInt()
{
    return env->GetVar(token->GetStrProp());
}

std::string Var::Name()
{
    return token->GetStrProp();
}

float Var::DoEvalFlt()
{
    return env->GetFltVar(token->GetStrProp());
}

void Var::SetValue( int val )
{
    env->SetVar(Name(), val);
}

void Var::SetValue( float val )
{
    env->SetFltVar(Name(),val);
}

void Var::SetMaxValue(int val)
{
    env->SetForInfo(Name(), val);
}

void Var::SetMaxValue(float val)
{
    env->SetFltForInfo(Name(), val);
}

void Var::SetStep(int step)
{
    env->SetForStep(Name(), step);
}

void Var::SetStep(float step)
{
    env->SetFltForStep(Name(), step);
}

int Var::MaxValue()
{
    return env->GetMaxValue(Name());
}

float Var::MaxFltValue()
{
    return env->GetFltMaxValue(Name());
}

int Var::Step()
{
    return env->GetForStep(Name());
}

float Var::FltStep()
{
    return env->GetFltForStep(Name());
}
